package com.xiangge.demo;

import com.xiangge.domain.Calculator;
import com.xiangge.domain.Dog;

/*
     面向对象编程：   掌握
         类和对象的关系：
               类：   笼统
                  描述： 类是一类事物的统称    例如： 狗类 , 人类
                  成员：
                      属性：
                        描述： 这一类事物公有的特性           例如： 身高 ,体重 , 品种 ,姓名 ,年龄等

                      行为：
                        描述： 这一类事物公有的行为           例如： 吃 , 睡觉

               对象： 具体
                  描述： 这一类事物中的具体的一个实例         例如：我家的黄色毛发的名字叫：旺财 , 年龄2岁的中华田园犬

               关系：
                   类：  模版
                   对象： 根据模版生产的一个具体的实例

         面向对象编成 ：
             1. 定义一个类：
                   -- 属性：成员变量
                        格式： public 数据类型 变量名;
                        例如： public String color
                        例如： public String name
                        例如： public int age
                     说明: 成员变量 定义在类中方法外

                   -- 行为：成员方法
                        格式：
                           public 返回值类型 方法名(形参列表){
                                方法体;
                                return 值;
                           }

                      说明: 成员方法 定义在类中方法外

             2. 根据类创建一个具体的实例对象
                   格式：   类名 对象名 = new 类名();
                   例如：   Dog dog = new Dog();

             3. 根据对象调用属性以及行为            成员： 属性 + 行为
                   格式：
                      调属性 ：  对象名.属性名;
                      调行为 ：  对象名.方法名(实际参数列表);

                      例如： String name = dog.name;
                      例如： dog.eat();

           练习： 定义一个狗类，并创建狗类的对象，调用属性和行为
                 定义一个手机类, 属性： 品牌 , 价格 , 颜色   行为： 打电话,发信息
           【随堂练习】
           1、使用计算器（Calculator）完成加法和减法运算，并能显示出该计算器的品牌和尺寸。
               计算器成员变量：品牌（brand）、尺寸（size）
               计算器成员方法：加法运算（add）、减法运算（sub）和显示计算器信息（show）
 */
/*
     测试类
 */
public class OOPDemo2 {
    public static void main(String[] args) {
        // 创建计算器类的实例对象
        Calculator calculator = new Calculator();
        // 调用成员
        // 将计算器对象属性赋值
        calculator.brand = "得力";
        calculator.size = "260X350";

        // 调用方法
        double add = calculator.add(3.6, 2.7);
        System.out.println("和为：" + add);

        double sub = calculator.sub(5.3, 4.6);
        System.out.println("差为：" + sub);

        calculator.show();

    }
    public static void main1(String[] args) {
        // 2. 根据类创建一个具体的实例对象
        Dog dog = new Dog();
        // 3. 根据对象调用属性以及行为
        // 调用属性
        String name = dog.name;
        System.out.println("name = " + name);

        System.out.println("dog.age = " + dog.age);
        System.out.println("dog.height = " + dog.height);

        // 调用行为
        dog.eat();
        dog.sleep();
    }
}
